import { BlockedLobbyState } from "@/Blocked/states/lobbyState";
import { CvSBackState } from "@/cvs/back/backState";
import { DirtShopLobbyState } from "@/dirtshop/states/lobbyState";
import { eleBackState } from "@/elevatorCat/backState/state";
import { KcpdBackState } from "@/kcpd/backState/kcpdBack";
import { MonopolyBackState } from "@/monopoly/states/backState";
import { PKPreParingState } from "@/parkour/backState/state";
import { PixelPartyBackState } from "@/pixelParty/back/backState";
import { GameContext } from "@sapi-game/gameContext";
import { HubState } from "./hubState";
import { baseModule } from "./module";

export class BaseGame extends baseModule.Engine {
    override get isDaemon(): boolean {
        return true;
    }

    protected override buildContext(): GameContext {
        return new GameContext();
    }

    override onStart(): void {
        this.pushState(PKPreParingState)
            .pushState(HubState)
            .pushState(eleBackState)
            .pushState(MonopolyBackState)
            .pushState(KcpdBackState)
            .pushState(CvSBackState)
            .pushState(PixelPartyBackState)
            .pushState(BlockedLobbyState)
            .pushState(DirtShopLobbyState);
    }

    override onStop(): void {}
}
